from redis import StrictRedis
import logging


# 配置类
class Config(object):

    DEBUG = True

    # 数据库的配置信息
    SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/information"

    # 开启数据库跟踪模式
    SQLALCHEMY_TRACK_MODIFICATIONS = True

    # 开启数据库自动提交功能
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True

    # redis数据库配置信息
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379

    # 使用session要设置加密字符串
    SECRET_KEY = "EjpNVSvQTyGi1VvWECj9TvC/+kq3ouAee2kTfQUs8yCM6xX9Yjq52v54g+HVonA"

    # flask_session的配置信息
    SESSION_TYPE = "redis"  # 指定session保存到redis中
    SESSION_USE_SIGNER = True  # 让cookie中的session_id被加密签名处理
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT, db=1)  # 使用redis的实例
    SESSION_PERMANENT = False  # 设置非永久保存
    PERMANENT_SESSION_LIFETIME = 86400  # session 的有效期，单位是秒


class DevelopmentConfig(Config):
    """开发模式的配置类"""

    DEBUG = True
    # 设置日志的级别
    LOG_LEVEL = logging.DEBUG


class ProductionConfig(Config):
    """线上模式的配置类"""

    DEBUG = False
    # 设置日志的级别
    LOG_LEVEL = logging.ERROR


# 给外界提供一个接口
config_dict = {
    "development": DevelopmentConfig,
    "production": ProductionConfig
}
